package com.guilin.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.guilin.common.annotation.Excel;
import com.guilin.common.core.domain.BaseEntity;

/**
 * 校友回访申请对象 alumni_visit_application
 * 
 * @author xiaoqi
 * @date 2025-06-23
 */
public class AlumniVisitApplication extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 校友ID */
    @Excel(name = "校友ID")
    private Long alumniId;

    /** 申请人姓名 */
    @Excel(name = "申请人姓名")
    private String applicantName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 联系邮箱 */
    @Excel(name = "联系邮箱")
    private String contactEmail;

    /** 回访目的 */
    @Excel(name = "回访目的")
    private String visitPurpose;

    /** 回访内容详情 */
    @Excel(name = "回访内容详情")
    private String visitContent;

    /** 回访开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "回访开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date visitStartTime;

    /** 回访结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "回访结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date visitEndTime;

    /** 回访人数 */
    @Excel(name = "回访人数")
    private Long visitPersonCount;

    /** 是否需要车辆入校(0-否,1-是) */
    @Excel(name = "是否需要车辆入校(0-否,1-是)")
    private Integer needVehicle;

    /** 车辆信息 */
    @Excel(name = "车辆信息")
    private String vehicleInfo;

    /** 申请状态(0-待审核,1-已通过,2-已拒绝,3-已完成) */
    @Excel(name = "申请状态(0-待审核,1-已通过,2-已拒绝,3-已完成)")
    private Long status;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String reviewOpinion;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long reviewerId;

    /** 审核人姓名 */
    @Excel(name = "审核人姓名")
    private String reviewerName;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setAlumniId(Long alumniId) 
    {
        this.alumniId = alumniId;
    }

    public Long getAlumniId() 
    {
        return alumniId;
    }

    public void setApplicantName(String applicantName) 
    {
        this.applicantName = applicantName;
    }

    public String getApplicantName() 
    {
        return applicantName;
    }

    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }

    public void setContactEmail(String contactEmail) 
    {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() 
    {
        return contactEmail;
    }

    public void setVisitPurpose(String visitPurpose) 
    {
        this.visitPurpose = visitPurpose;
    }

    public String getVisitPurpose() 
    {
        return visitPurpose;
    }

    public void setVisitContent(String visitContent) 
    {
        this.visitContent = visitContent;
    }

    public String getVisitContent() 
    {
        return visitContent;
    }

    public void setVisitStartTime(Date visitStartTime) 
    {
        this.visitStartTime = visitStartTime;
    }

    public Date getVisitStartTime() 
    {
        return visitStartTime;
    }

    public void setVisitEndTime(Date visitEndTime) 
    {
        this.visitEndTime = visitEndTime;
    }

    public Date getVisitEndTime() 
    {
        return visitEndTime;
    }

    public void setVisitPersonCount(Long visitPersonCount) 
    {
        this.visitPersonCount = visitPersonCount;
    }

    public Long getVisitPersonCount() 
    {
        return visitPersonCount;
    }

    public void setNeedVehicle(Integer needVehicle) 
    {
        this.needVehicle = needVehicle;
    }

    public Integer getNeedVehicle() 
    {
        return needVehicle;
    }

    public void setVehicleInfo(String vehicleInfo) 
    {
        this.vehicleInfo = vehicleInfo;
    }

    public String getVehicleInfo() 
    {
        return vehicleInfo;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setReviewOpinion(String reviewOpinion) 
    {
        this.reviewOpinion = reviewOpinion;
    }

    public String getReviewOpinion() 
    {
        return reviewOpinion;
    }

    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }

    public void setReviewerName(String reviewerName) 
    {
        this.reviewerName = reviewerName;
    }

    public String getReviewerName() 
    {
        return reviewerName;
    }

    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("alumniId", getAlumniId())
            .append("applicantName", getApplicantName())
            .append("contactPhone", getContactPhone())
            .append("contactEmail", getContactEmail())
            .append("visitPurpose", getVisitPurpose())
            .append("visitContent", getVisitContent())
            .append("visitStartTime", getVisitStartTime())
            .append("visitEndTime", getVisitEndTime())
            .append("visitPersonCount", getVisitPersonCount())
            .append("needVehicle", getNeedVehicle())
            .append("vehicleInfo", getVehicleInfo())
            .append("status", getStatus())
            .append("reviewOpinion", getReviewOpinion())
            .append("reviewerId", getReviewerId())
            .append("reviewerName", getReviewerName())
            .append("reviewTime", getReviewTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
